EXP 5 Namee :Siddhi Subhedarr PRN : 1262062106 Noise
In [18]:
import numpy as np
import matplotlib.pyplot as plt
import cv2
%matplotlib inline
In [19]:
img=cv2.imread("flower.jpg",0)
plt.imshow(img,cmap='gray')
Out[19]:
<matplotlib.image.AxesImage at 0x1f9fb974da0>
In [3]:
print(img.shape)
(820, 610)
Gaussian Noice
In [4]:
gauss_noise=np.zeros((225,225),dtype=np.uint8)
cv2.randn(gauss_noise,128,20) # cv2.randn(image, mean, standard deviatio
gauss_noise=(gauss_noise*0.5).astype(np.uint8)
In [5]:
plt.imshow(gauss_noise,cmap='gray')
Out[5]:
<matplotlib.image.AxesImage at 0x1f9faffda60>
In [6]:
print(img.shape)
print(gauss_noise.shape)
(820, 610) (225, 225)
In [7]:
gauss_noise_re = cv2.resize(gauss_noise, (img.shape[1], img.shape[0]))
In [8]:
print(img.shape)
print(gauss_noise_re.shape)
(820, 610) (820, 610)
In [9]:
gn_img= cv2.add(img,gauss_noise_re)
In [10]:
fig=plt.figure(dpi=300)
fig.add_subplot(1,3,1)
plt.imshow(img,cmap='gray')
plt.axis("off")
plt.title("Original")
fig.add_subplot(1,3,2)
plt.imshow(gauss_noise,cmap='gray')
plt.axis("off")
plt.title("Gaussian Noise")
fig.add_subplot(1,3,3)
plt.imshow(gn_img,cmap='gray')
plt.axis("off")
plt.title("Combined Gaussian")
Out[10]:
Text(0.5, 1.0, 'Combined Gaussian')
Uniform Noise
In [11]:
uni_noise=np.zeros((225,225),dtype=np.uint8)
cv2.randu(uni_noise,0,255)
uni_noise=(uni_noise*0.5).astype(np.uint8)
In [12]:
print(img.shape)
print(uni_noise.shape)
(820, 610) (225, 225)
In [13]:
uni_noise_re = cv2.resize(uni_noise, (img.shape[1], img.shape[0]))
In [14]:
print(img.shape)
print(uni_noise_re.shape)
(820, 610) (820, 610)
In [15]:
un_img=cv2.add(img,uni_noise_re)
In [16]:
cv2.imwrite('noisycat.jpg', un_img)
Out[16]:
True
In [17]:
fig=plt.figure(dpi=300)
fig.add_subplot(1,3,1)
plt.imshow(img,cmap='gray')
plt.axis("off")
plt.title("Original")
fig.add_subplot(1,3,2)
plt.imshow(uni_noise,cmap='gray')
plt.axis("off")
plt.title("Uniform Noise")
fig.add_subplot(1,3,3)
plt.imshow(un_img,cmap='gray')
plt.axis("off")
plt.title("Combined Uniform")
Out[17]:
Text(0.5, 1.0, 'Combined Uniform')
Impulse Noise(Salt and pepper noise)
In [20]:
imp_noise=np.zeros((225,225),dtype=np.uint8)
cv2.randu(imp_noise,0,255)
imp_noise=cv2.threshold(imp_noise,245,255,cv2.THRESH_BINARY)[1]
In [21]:
imp_noise_re = cv2.resize(imp_noise, (img.shape[1], img.shape[0]))
In [22]:
in_img=cv2.add(img,imp_noise_re)
In [23]:
fig=plt.figure(dpi=300) # Width and Height of figures change
fig.add_subplot(1,3,1)
plt.imshow(img,cmap='gray')
plt.axis("off")
plt.title("Original")
fig.add_subplot(1,3,2)
plt.imshow(imp_noise,cmap='gray')
plt.axis("off")
plt.title("Impulse Noise")
fig.add_subplot(1,3,3)
plt.imshow(in_img,cmap='gray')
plt.axis("off")
plt.title("Combined Salt & Pepper")
cv2.imwrite('noisy_lena.jpg',in_img)
Out[23]:
True
Removing Noise from Image
In [24]:
gauss_noise=np.zeros((225,225),dtype=np.uint8)
In [25]:
plt.imshow(gauss_noise,cmap='gray')
Out[25]:
<matplotlib.image.AxesImage at 0x1f9fbf0d8b0>
In [26]:
gauss_noise.shape
Out[26]:
(225, 225)
DIP
In [27]:
img=cv2.imread('noisycat.jpg')
plt.imshow(img)
Out[27]:
<matplotlib.image.AxesImage at 0x1f9fb1e5f40>
In [28]:
blur = cv2.blur(img,(9,9))
In [29]:
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
plt.xticks([]), plt.yticks([])
Out[29]:
(([], []), ([], []))
In [30]:
blur = cv2.blur(img,(3,3))
In [31]:
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
plt.xticks([]), plt.yticks([])
Out[31]:
(([], []), ([], []))
Median Filter
In [32]:
median = cv2.medianBlur(img,3)
plt.imshow(median)
Out[32]:
<matplotlib.image.AxesImage at 0x1f9fbfe2ea0>
In [33]:
kernel2 = np.ones((5, 5), np.float32) / 25
image = cv2.filter2D(src=img, ddepth=-1, kernel=kernel2)
In [34]:
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(image),plt.title('Kernel Blur')
plt.xticks([]), plt.yticks([])
Out[34]:
(([], []), ([], []))
In [35]:
plt.imshow(image)
Out[35]:
<matplotlib.image.AxesImage at 0x1f9fcc5ca70>
In [36]:
blur1 = cv2.blur(img,(3,3))
blur2 = cv2.blur(img,(9,9))
blur3 = cv2.blur(img,(25,25))
In [37]:
fig=plt.figure(dpi=100)
plt.subplot(221),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(blur1),plt.title('Blurred 3x3')
plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(blur2),plt.title('Blurred 9x9')
plt.xticks([]), plt.yticks([])
plt.subplot(224),plt.imshow(blur3),plt.title('Blurred 25x25')
plt.xticks([]), plt.yticks([])
Out[37]:
(([], []), ([], []))
In [38]:
fig = plt.figure(figsize=(3,3))
plt.imshow(img),plt.title('Original')
fig = plt.figure(figsize=(3,3))
plt.imshow(blur1),plt.title('Blurred 3x3')
fig = plt.figure(figsize=(6,6))
plt.imshow(blur2),plt.title('Blurred 9x9')
fig = plt.figure(figsize=(6,6))
plt.imshow(blur3),plt.title('Blurred 25x25')
Out[38]:
(<matplotlib.image.AxesImage at 0x1f9fccd1310>, Text(0.5, 1.0, 'Blurred 25x25'))
In [39]:
img_median3 = cv2.medianBlur(img,3)
#cv2.imshow('image', numpy.hstack((img, dst)))
plt.imshow(img_median3)
img_median5 = cv2.medianBlur(img,5)
img_median7 = cv2.medianBlur(img,7)
img_median15 = cv2.medianBlur(img,15)
In [40]:
fig=plt.figure(dpi=700)
plt.subplot(151),plt.imshow(img),plt.title('Noisy Original')
plt.xticks([]), plt.yticks([])
plt.subplot(152),plt.imshow(img_median3),plt.title('Mkernel 3x3')
plt.xticks([]), plt.yticks([])
plt.subplot(153),plt.imshow(img_median5),plt.title('Mkernel 5x5')
plt.xticks([]), plt.yticks([])
plt.subplot(154),plt.imshow(img_median7),plt.title('Mkernel 7x7')
plt.xticks([]), plt.yticks([])
plt.subplot(155),plt.imshow(img_median15),plt.title('Mkernel 15x15')
plt.xticks([]), plt.yticks([])
Out[40]:
(([], []), ([], []))
In [43]:
img_Gaussian3 = cv2.GaussianBlur(img,(3,3),cv2.BORDER_DEFAULT)
img_Gaussian9 = cv2.GaussianBlur(img,(9,9),cv2.BORDER_DEFAULT)
img_Gaussian15 = cv2.GaussianBlur(img,(15,15),cv2.BORDER_DEFAULT)
In [44]:
plt.subplot(221),plt.imshow(img),plt.title('Noisy Original')
plt.xticks([]), plt.yticks([])
plt.subplot(222),plt.imshow(img_Gaussian3),plt.title('Gkernel 3x3')
plt.xticks([]), plt.yticks([])
plt.subplot(223),plt.imshow(img_Gaussian9),plt.title('Gkernel 9x9')
plt.xticks([]), plt.yticks([])
plt.subplot(224),plt.imshow(img_Gaussian15),plt.title('Gkernel 15x15')
plt.xticks([]), plt.yticks([])
Out[44]:
(([], []), ([], []))
In [ ]: